Touchless human machine interface

ABSTRACT

A system and method for receiving input from a user is provided. The system includes at least one camera configured to receive an image of a hand of the user and a controller configured to analyze the image and issue a command based on the analysis of the image.

BACKGROUND

1. Field of the Invention

The present invention generally relates to a user interface.

2. Description of Related Art

With the introduction of touch screen technology, users are more comfortable with user interfaces that accept input based on touch interaction with the user. However, a touch screen technology can still be expensive and limits the input to motion that actually contacts the device. In an automotive environment, where a user is confined by a seatbelt, it may not always be convenient to touch the device to provide input.

In view of the above, it is apparent that there is a need for an improved user interface.

SUMMARY

A system and method for receiving input from a user is provided. The system includes at least one camera configured to receive an image of a hand of the user and a controller configured to analyze the image and issue a command based on the analysis of the image.

Camera technology may be used in the vehicle to accept user input while not require the user to physically touch the device. The user may make a hand gesture with their hand within the field of view of the camera. Based on the position and orientation of the user's fingers or the finger path over time, the system can identify the gesture based on a plurality of stored gesture models. Further, the cameras may be configured with resolution sufficient to distinguish a finger print on the fingers. The finger print may be used for tracking the position and orientation of the finger, as well as, for a security check allowing certain features of the user interface to be unlocked. The security check may be for setting option parameters or for even starting the car ignition.

Further objects, features and advantages of this invention will become readily apparent to persons skilled in the art after a review of the following description, with reference to the drawings and claims that are appended to and form a part of this specification.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a front view of a system for accepting user input;

FIG. 2 is a side view of the system for accepting user input in FIG. 1;

FIG. 3 is a flowchart illustrating a method for accepting user input;

FIG. 4. Is illustration of an image received by a first camera for accepting user input;

FIG. 5. Is illustration of a subsequent image received by the first camera for accepting user input;

FIG. 6. Is illustration of the finger path and gesture formed by the user in FIG. 4 and FIG. 5;

FIG. 7 Is illustration of the change in position and orientation of the thumb from FIG. 6;

FIG. 8 Is illustration of an image received by a second camera for accepting user input;

FIG. 9. Is illustration of a subsequent image received by the second camera for accepting user input;

FIG. 10. Is illustration of the finger path and gesture formed by the user in FIG. 8 and FIG. 9; and

FIG. 11 is a schematic view of one implementation of a controller.

DETAILED DESCRIPTION

Now referring to FIG. 1, a system 100 is provided for receiving user input. The system 100 includes a controller 110 and a plurality of cameras 112, 114, 116, 118. The system 100 may also include a display 122 and input controls 124. The cameras 112, 114, 116, 118 may be mounted on a front console 120 of a vehicle. The cameras may include a detector with an array of photosensitive elements. In one example, a CMOS camera may be used. Further, a high definition camera may be used and configured to identify detailed features in the image. For example, if a hand is presented to the camera, the camera may be configured with a resolution high enough to distinguish lines on the pad of the finger that comprise a finger print.

The cameras may be located at different positions along the width of the front console as denoted for example, by cameras 112, 114, 118. The cameras may also be mounted at different heights as denoted by cameras 112, 116. Further, the cameras may be clustered around the center of the console as shown by cameras 112, 116, 118. In one example, cameras 112, 116, 118 are located around the outside of the display 122 on the front console 120. Further, the cameras are located in the center of the console and are accessible by either the driver of the vehicle or front seat passenger of the vehicle.

The display 122 may be a light emitting diode (LED) display, liquid crystal display (LCD), or other display appropriate for automotive applications. Further, input controls 124 may be provided for receiving user input by the controller 110. The controls 124 may include one or more buttons 126, knobs 128, or switches 130 to facilitate providing user input to the controller 110. Although it is also understood that other known physical controls may be provided within the context of the controls 124.

As such, the controller 110, the display 122, the controls 124, and the cameras 112, 114, 116, 118 may all be in communication with one another or for example, a communication bus 132. Although it is also understood that the communications may be multiple separate communication links between each individual device, or a wireless communication link may also be provided between one or more of the above referenced devices.

The cameras 112, 114, 116, 118 may be configured to view a hand of the user to receive user input. Accordingly, the cameras may capture an image of the hand of the user and further the image of the hand of the user may be displayed on the display 122. By locating the cameras near the display 122, the user can view the image of the hand provided on the display 122, as well as, the user's actual hand. Viewing the image and the hand simultaneously will aid the user in forming gestures that can be understood as user input by the system 100. The controller 110 may also display graphics overlaid on the image of the hand to aid in forming recognizable hand gestures and/or communicate the controller's interpretation of the hand gesture. Further, the cameras 112, 114, 116, 118 may have overlapping fields of use such that multiple of the cameras are viewing the hand at the same time. This can also be seen in the side view provided in FIG. 2. Accordingly, the field of view 220 of the camera 112 overlaps with the field of view 222 of camera 116 such that both cameras view a hand 224 of the user simultaneously and from different vantage points. By using two cameras that view the hand 224 from different vantage points, various stereo vision techniques can be used to determine the location of the hand and orientation of the hand in three dimensional space, as well as, the position and location of fingers 228 and 226 on the hand 224. Using successive images taken by the cameras, allows motion of the hand, as well as, motion of individual fingers to be identified and interpreted as a gesture by the controller 110. Upon interpreting a gesture, the controller 110 may then issue a command to one or more vehicle systems as denoted by reference numeral 140. The vehicle systems may include climate control systems, entertainment systems, door lock systems, lighting systems, or other well known systems.

Further, lights 134, 136 may be provided, for example on the front console, to illuminate the hand during night driving conditions or when ambient illumination is not sufficient for the functioning of the system 100. In one example, the lights 134, 136 are associated with particular cameras 112 and 116. However, in other implementations, the lighting may be provided at a central location and provided independent of any of the cameras particularly. The lights 134, 136 may be LED illumination, and further, the lights 134, 136 may provide illumination in the near infrared spectrum. As such the illumination may not be visible to the user, however, the illumination could be readily sensed by the cameras. In addition, a sensor 138 such as a photo detector may be used to determine if the ambient lighting of a vehicle is above a certain threshold level and as such, may provide a signal to activate the lights 134, 136. The sensor 138 may have one or more photodiodes located at one or more positions within the vehicle to determine the directionality of the ambient light and as such the controller 110 may light a subset of the lights based on the directionality of the ambient light sensed by the sensor 138 to provide even illumination of the hand to the system 100.

Now referring to FIG. 3, a method for providing user input is illustrated. The method starts in block 310. In block 312, a background image is formed by averaging a series of background images. This may be accomplished by acquiring many images over a period of time and averaging the results of the series of background images. In one implementation, the background image may include a rolling series of images such that a stored background image is the average of a series of background images over a given time period, for example, the last hour. By using a rolling window of background images, the changing lighting conditions in the vehicle may be accounted for as well as other environmental changes. In block 314, an image is captured by the camera where multiple cameras are used, for example, to determine the three dimensional position and orientation of the hand and/or fingers of the user, then multiple images may be captured such as one image for each camera.

In block 316, each image is analyzed. The system may determine if the hand is present in the image by comparing the recently acquired image to the background image. For example, the background image may be subtracted from the recently captured image to provide a difference image. The difference image may be thresholded and an analysis of the resulting shapes may identify if the shapes contained in the image correspond to the shape of a hand. This may be done by various methods which may be as simple as a pixel count, or as complicated as scoring a model of a representative hand and comparing the shapes and the image to the representative model to determine the likelihood that a hand exists in the image. In another example, a stored pattern of the finger print of one or more of the fingers may be used to identify the hand. If the system does not determine that a hand exists in the image, the method follows line 320 to block 322. In block 322, the background series of images is updated and a new background image is stored. The method then follows line 324 to block 314, where the method continues. If the hand is in the image and a potential gesture exists, then the method follows line 326 to block 328. In block 328, the hand is located in the image space and/or in three dimensional space using images from multiple cameras. In block 330, the position and orientation of each of the fingers may be determined. Accordingly, each finger may be first identified in the image space and then a position of the orientation of the finger determined based on images from multiple cameras using triangulation and other stereo imaging techniques to determine the three dimensional position and orientation of each finger. For example, various models may be used to determine the position and orientation of the fingers including a model of the finger print for each finger. In block 332, another image is captured by one or more of the cameras to image the hand. The fingers are tracked in block 334. The fingers may be tracked by utilizing the same steps described above with respect to blocks 328 and 330. In addition, the system may use the position and orientation of the fingers in the previous set of images as a starting point and determine the change in position and orientation of the fingers relative to the previous series images. Accordingly, the system may determine a three dimensional finger path for each finger and match one or more of the finger paths to a predetermined model of finger paths that represents a gesture. In block 336, a system determines if a gesture is recognized, for example, based on the plurality of finger paths. If a gesture is not recognized in block 336, the method follows line 338 to block 340. In block 340, the system determines if the hand has been removed from the image. If the hand has not been removed from the image, the method follows line 342 to block 332 where the method continues. If the hand has been removed from the image in block 340, the method follows line 346 to block 332. In block 332, the background image is updated and stored and the method follows line 324 to block 314, where the method continues.

Now referring again to block 336, if in block 336 the gesture is recognized based on the positions and orientations of the fingers, or more particularly based on the plurality of finger paths, the method follows 348 to block 350. In block 350, the system sends a command that is associated with the recognized gesture to a vehicle subsystem. For example, a gesture where each of the fingers are moved toward one another may cause the controller to send a command to the vehicle entertainment system to change the volume of the vehicle. Another example, the thumb and pinky may be extended from a closed fist and as such, the vaulted position of the pinky and thumb to the rest of the fingers may indicate a gesture to initiate a phone call based only on the positioning orientation of the fingers relative to one another. Accordingly, the system may send a command to initiate a phone call to a telematics controller.

Now referring to FIG. 4, image 400 from one camera is provided. The image 400 includes a hand 401 within the field of view of the camera. An index finger is denoted by arrow 410 and various image processing techniques may be used to determine the location of the index finger within the image as denoted by reference numeral 420. Similarly, arrow 412 denotes a middle finger, arrow 414 denotes a ring finger, and arrow 416 denotes a pinky finger and the system may use various image processing techniques to determine the locations of such fingers including a middle finger position 422, a ring finger position 424, and a pinky finger position 426. Further, the thumb is denoted by arrow 418 and the thumb position is denoted by reference number 428. It is further noted that while the two dimensional positions of the fingers can be determined in two dimensional image space, the components of multiple images from different cameras may be used to determine the three dimensional positions and orientations of each of the fingers through various stereo imaging processing techniques.

Now referring to FIG. 5, a subsequent image 500 from the same camera as FIG. 4 is provided. In FIG. 5, again the system may identify each of the fingers on the hand 401. For example, the index finger 410, the middle finger 412, the ring finger 414, the pinky finger 416 and the thumb 418. Further, a second position for each of the fingers can be determined in the subsequent image in particular, an index finger position 502, a middle finger position 522, a ring finger position 524, a pink finger position 526, and a thumb position 528 are shown within the image.

Now referring to FIG. 6, a superimposed image of FIG. 4 and FIG. 5 is provided showing the initial finger positions 420, 422, 424, 426, 428 and the subsequent finger positions 520, 522, 524, 526, 528. The difference between the finger positions can be calculated in two dimensional or three dimensional space. The change in the finger positions from the initial finger position to the subsequent finger position can be used to calculate a finger path denoted by line 620. While line 620 represents an index finger path, the same process may be used for each of the fingers thereby creating a middle finger path 622, a ring finger path 624, a pinky finger path 626 and a thumb finger path 628. As illustrated in FIG. 6, the fingers were moved from a more open spread position to a close together pinched position. For example, this gesture imitates a person grasping a knob or squeezing an object. The system may interpret the gesture as making something smaller, for example, the volume, or may interpret this combination of finger paths as grasping a knob, for example, to change a radio station and a subsequent rotating of the finger positions while grasping as an indication of turning a representative knob to a higher or lower station. In addition, the system may determine whether the user input is provided by the driver of the vehicle or the passenger of a vehicle based on which hand (right hand or left hand) is presented to the camera. Further, if a very high resolution camera is used, it may be possible to image the fingerprint of one or more of the fingers and determine the location of the fingers based on a matching of a stored fingerprint within the field of the view of the camera. In this scenario, the fingerprint matching may also be used to identify each of the fingers on the hand as well as which user is providing input to the system. Further, the fingerprints may be used to provide access to certain features or unlock certain functions of the car using the fingerprint scan as a security feature.

Now referring to FIG. 7, one example is provided where the system determines the position and orientation of one or more of the fingers based on a model that is matched to the finger. In this implementation, the initial and subsequent images may again be used to determine a finger path, as well as, a set of positions and orientations of each finger in three dimensional space. Again, this may also be done using stereo vision techniques and also using multiple sets of sequential images for multiple cameras. In this example, an initial position and orientation of a finger may be determined as denoted by reference numeral 712. A diameter of the finger 710 or change in diameter may be used to determine a model of the finger as denoted by axis 714 and geometry 716. The model may include just a position and principle axis 714 or may also include a geometric model as denoted by shape 716 including a cylindrical model or a more complex three dimensional model. In a subsequent image, again a second position and orientation of the finger may be determined as denoted by reference numeral 732. Again, an outline of the finger 730 in the subsequent image may be used to determine an axis 734 and model 736 for the finger in the subsequent image. Accordingly, the gesture may be determined based on both the initial position and orientation and subsequent position and orientations in a set of sequential images for each camera to determine a gesture based on such three dimensional position and orientation information, as well as, contiguous finger path information.

Now referring to FIG. 8-9, a second set of sequential images is provided from another camera which may be used in combination with the first set of images 4-5 from the first camera. The features of the first set of images can be combined with the features of the second set of images using triangulation or stereo vision techniques to determine the set of three dimensional positions and orientations of each finger in three dimensional space, as well as, three dimensional finger paths for each finger which may be used in combination to identify a gesture and issue a corresponding command.

Now referring to FIG. 8, again the index finger 410, the middle finger 412, the ring finger 414, the pinky finger 416, and the thumb 418 are identified and an index finger position 810, a middle finger position 812, a ring finger position 814, a pinky finger position 816, and a thumb position 818 are determined based on the image 800. Further, image 800 is provided from a different position and angle than images 400 and 500 from the first camera to facilitate various triangulation and stereo imaging techniques to determine the position of and orientation of each finger in three dimensional space using a combination of images taken from different cameras at the same time. In addition, the fingers in image 800 are presented with the pads of the fingers presented to the camera. As discussed previously, the finger print from each finger may also be used to identify the location and orientation of each finger.

Now referring to FIG. 9, a subsequent image 900 is provided from the same camera that acquired image 800 and also at the same subsequent time as image 500. Again, the system determines a position of each finger, specifically an index finger position 910, a middle finger position 912, a ring finger position 914, a pinky finger position 916, and a thumb position 918.

Now referring to FIG. 10, each of the initial and subsequent positions for each finger is used to determine a finger path for each corresponding finger. For example, an index finger path 1010, a middle finger path 1012, a ring finger path 1014, a pinky finger path 1016, and a thumb finger path 1018. Each of the finger paths as well as the position and orientations of each finger may be compared to various gesture models to determine a corresponding gesture 1020. Accordingly, the system may issue a command corresponding to the gesture based on one or more combinations of the position orientation and finger paths of each finger.

Any of the controllers, devices, modules, servers, or engines described may be implemented in one or more computer systems. One exemplary system is provided in FIG. 11. The computer system 1100 includes a processor 1110 for executing instructions such as those described in the methods discussed above. The instructions may be stored in a computer readable medium such as memory 1112 or storage devices 1114, for example a disk drive, CD, or DVD. The computer may include a display controller 1116 responsive to instructions to generate a textual or graphical display on a display device 1118, for example a computer monitor. In addition, the processor 1110 may communicate with a network controller 1120 to communicate data or instructions to other systems, for example other general computer systems. The network controller 1120 may communicate over Ethernet or other known protocols to distribute processing or provide remote access to information over a variety of network topologies, including local area networks, wide area networks, the Internet, or other commonly used network topologies.

In other embodiments, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, can be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system encompasses software, firmware, and hardware implementations.

In accordance with various embodiments of the present disclosure, the methods described herein may be implemented by software programs executable by a computer system. Further, in an exemplary, non-limited embodiment, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionality as described herein.

Further, the methods described herein may be embodied in a computer-readable medium. The term “computer-readable medium” includes a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer-readable medium” shall also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methods or operations disclosed herein.

As a person skilled in the art will readily appreciate, the above description is meant as an illustration of the principles of the invention. This description is not intended to limit the scope or application of the invention in that the invention is susceptible to modification, variation and change, without departing from spirit of the invention, as defined in the following claims. 

I claim:
 1. In a non-transitory computer readable storage medium having stored therein instructions executable by a programmed processor for receiving input to a vehicle system from a user of the system, the storage medium comprising instructions for: capturing a series of background images of the interior of a vehicle over a predetermined time to produce a rolling window of background images; after the rolling window of background averages is produced, capturing a plurality of captured images of background and an image of a finger print of a user's finger; subtracting the rolling window of background images from the plurality of captured images of the background and the image of a finger print of the user's finger to produce a plurality of images of the finger print of user's finger; comparing the plurality of images of the finger print of the user's finger to a stored finger print pattern to identify the user's finger and to determine a position, orientation, and three-dimensional path of the user's finger; analyzing the position, orientation, and three dimensional path of the user's finger to determine a gesture; issuing a command to the vehicle system responsive to the determined gesture.
 2. The computer readable storage medium according to claim 1, wherein the image is one of a plurality of images captured by a plurality of cameras on a front console of a vehicle.
 3. The computer readable storage medium according to claim 1, further comprising instructions for determining positions of at least two fingers relative to one another in each image of a series of images to determine a gesture based on each finger path of the at least two fingers in three dimensional space.
 4. The computer readable storage medium according to claim 3, further comprising instructions for determining the positions of the at least two fingers relative to one another in each image based on triangulation and the position and orientation of each camera.
 5. The computer readable storage medium according to claim 4, further comprising instructions for determining the positions of the at least two fingers by generating an average of a plurality of background images and calculating a difference between each image in the series of images and the average of the plurality of background images.
 6. A system for receiving input from a user of a vehicle, the system comprising: at least two cameras configured to selectively capture images, a first image being an image of a background, a second image being captured after the first image and including both background and an image of a finger print of a user's finger; and a controller coupled to the cameras and configured to subtract the first image from the second image to produce a difference image comprising an image of the finger print of the user, the controller being additionally configured to compare the image of the finger print to a stored pattern and determine from said comparison the identity of a finger of a user, the controller being additionally configured to determine the location of the finger of the user within a field of view of at least one of the cameras, the controller being additionally configured to determine a three dimensional path of the finger based on a model of the finger print in three dimensional space without the finger contacting a surface.
 7. The system according to claim 6, wherein the controller is configured to match captured images of finger prints obtained from at least two fingers, to stored images of finger prints and wherein the controller is configured to determine the positions of the at least two fingers relative to one another in a plurality of successive images based on triangulation.
 8. The system according to claim 7, wherein the controller is configured to determine the positions of the at least two fingers on the hand by first generating an average of a plurality of background images that do not include the hand and thereafter calculating a difference between each image in the series of images that include the hand and captured images of the finger prints of the at least two fingers.
 9. A system for receiving input command gestures from a user in a vehicle, the system comprising: at least one camera located in the vehicle and configured to receive a first series of images of a background obtained from inside the vehicle and, after the at least one camera receives the first series of images of background, receive a second image of a finger print of a user's finger captured in the first series of images; and a controller configured to average the first series of images of the background captured prior to capturing the second image and to subtract the average of the first series of images of the background from the second image to produce an image of the finger print of a user's finger, the controller additionally configured to determine the identity of the user's finger by comparing the image of the finger print of the user's finger to a stored pattern of a finger print and issue a command based on whether the image of the finger print of the user's finger matches the stored pattern of a finger print, the controller being additionally configured to determine a three dimensional path of the finger based on a model of the finger print to determine a gesture of the finger in three dimensional space.
 10. The system according to claim 9, wherein the controller is configured to determine the position of one of more fingers in the image.
 11. The system according to claim 10, further comprising a display screen in the vehicle, and wherein the at least one camera is a plurality of cameras located in predetermined positions inside the vehicle, each camera being configured and located to capture a series of images of finger prints, the controller being configured to identify the positions of the one or more fingers responsive to a determination that images of the finger prints of one or more fingers match stored patterns of finger prints.
 12. The system according to claim 11, wherein the controller is configured to analyze each series of images to identify positions of the one or more fingers in three dimensional space.
 13. The system according to claim 11, wherein the controller is configured to determine the positions of at least two fingers relative to one another.
 14. The system according to claim 9, wherein the controller is configured to determine the positions of at least one finger in each image of a series of images to determine a finger path.
 15. The system according to claim 9, wherein the controller is configured to determine the positions of at least two fingers relative to one another in each image of a series of images to determine a gesture based on each finger path of the at least two fingers in three dimensional space.
 16. The system according to claim 9, wherein the controller is configured to determine the positions of at least two fingers relative to one another in each image based on triangulation and a position and orientation of each camera.
 17. The system according to claim 9, wherein the controller is configured to determine the positions of at least two fingers by generating an average of a plurality of background images and calculating a difference between each image of a series of images and the average of the plurality of background images.
 18. The system according to claim 9, wherein the controller is configured to match a stored model of a finger print to a finger print on at least one of the fingers. 